Implementing a circuit design within an integrated circuit (IC), whether a programmable IC or an application specific IC (ASIC), entails processing the circuit design through a design flow. The design flow includes multiple, different phases. These phases generally include synthesis, placement, and routing. In general, synthesis refers to the process of generating a gate-level netlist from a high-level description of a circuit or system. Placement refers to the process of assigning elements of the synthesized circuit design to particular instances of circuit blocks and/or resources having specific locations on the target IC. Routing is the process of selecting or implementing particular routing resources, e.g., wires and/or other interconnect circuitry, to electrically couple the various circuit blocks of the target IC after placement.
Modern circuit designs often have aggressive timing requirements. Significant time is spent processing the circuit design through the design flow in an attempt to meet these timing requirements. The distance between elements of the circuit design post placement accounts for a significant portion of the delay in the circuit design and whether the circuit design, as implemented within the target IC, will meet established timing requirements.